Skip to content

Upgrade to Java 21 + Spring Boot 3.4.5 + Modern Build Tooling#173

Open
devin-ai-integration[bot] wants to merge 1 commit intoDevOpsfrom
devin/1777407177-java-21-spring-boot-upgrade
Open

Upgrade to Java 21 + Spring Boot 3.4.5 + Modern Build Tooling#173
devin-ai-integration[bot] wants to merge 1 commit intoDevOpsfrom
devin/1777407177-java-21-spring-boot-upgrade

Conversation

@devin-ai-integration
Copy link
Copy Markdown

@devin-ai-integration devin-ai-integration Bot commented Apr 28, 2026

Summary

Upgrades the project from Java 17 / Spring Boot 3.3.3 to Java 21 / Spring Boot 3.4.5, fixes the broken maven-compiler-plugin config, modernizes the MySQL connector dependency, updates the Maven wrapper and Dockerfile base images, and replaces the deprecated Hibernate dialect.

Changes:

Area Before After
Spring Boot 3.3.3 3.4.5
Java version 17 21
maven-compiler-plugin Explicit source=1.8 / target=1.8 (bug) Removed — inherits from java.version via parent POM
MySQL Connector mysql-connector-java:8.0.33 mysql-connector-j:9.1.0
Maven Wrapper 3.9.7 3.9.9
Dockerfile builder maven:3.8.3-openjdk-17 maven:3.9-eclipse-temurin-21
Dockerfile runtime openjdk:17-alpine eclipse-temurin:21-jre-alpine
Hibernate dialect org.hibernate.dialect.MySQL8Dialect org.hibernate.dialect.MySQLDialect
mvnw permissions Not executable Executable (chmod +x)

No application logic, tests, or architecture changes. No new dependencies added.

Build verified: ./mvnw clean compile -DskipTests passes with Java 21.

Review & Testing Checklist for Human

  • Verify ./mvnw clean compile -DskipTests passes locally with JDK 21
  • Verify ./mvnw clean test passes with JDK 21 (H2 in-memory DB for tests)
  • Confirm the Docker image builds successfully: docker build -t bankapp .
  • Confirm the app starts and connects to MySQL with the updated connector and dialect

Notes

  • The openjdk Docker images are deprecated; eclipse-temurin is the recommended replacement.
  • The mysql-connector-java artifactId was deprecated in favor of mysql-connector-j starting with Connector/J 8.x+.
  • The version-specific MySQL8Dialect is deprecated in Hibernate 6+; MySQLDialect auto-detects the MySQL version at runtime.

Link to Devin session: https://app.devin.ai/sessions/9cc80ee2cc43422b94a73384fd402ba2
Requested by: @Colhodm


Open in Devin Review

- Upgrade spring-boot-starter-parent from 3.3.3 to 3.4.5
- Upgrade java.version from 17 to 21
- Remove incorrect maven-compiler-plugin config (source/target 1.8)
- Update mysql-connector-java to mysql-connector-j 9.1.0
- Update Maven wrapper distribution URL to Maven 3.9.9
- Update Dockerfile to maven:3.9-eclipse-temurin-21 and eclipse-temurin:21-jre-alpine
- Replace deprecated MySQL8Dialect with MySQLDialect
- Make mvnw executable

Co-Authored-By: Arjun Mishra <arjunsaxmishra@gmail.com>
@devin-ai-integration
Copy link
Copy Markdown
Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

@staging-devin-ai-integration
Copy link
Copy Markdown

Devin Review

Status Commit
⚪ Not started

Open in Devin Review (Staging)

💡 Connect your GitHub account to enable automatic code reviews.

Copy link
Copy Markdown
Author

@devin-ai-integration devin-ai-integration Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no potential bugs to report.

View in Devin Review to see 3 additional findings.

Open in Devin Review

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant